package com.bora_bandeco;

import static com.bora_bandeco.CommonUtilities.IREI;
import static com.bora_bandeco.CommonUtilities.NAO_IREI;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class ConvidadosConviteListAdapter extends BaseAdapter {
	private Context mContext;
	
	private List<Convidado> convidados;

	
	public ConvidadosConviteListAdapter(Context c) {
		this.mContext = c;
		this.convidados = new ArrayList<Convidado>();
	}
	
	public void clear() {
		this.convidados.clear();
	}
	
	public void addItem(Convidado c) {
		this.convidados.add(c);
	}

	@Override
	public int getCount() {
		return this.convidados.size();
	}

	public List<Convidado> getConvidados() {
		return this.convidados;
	}

	@Override
	public Object getItem(int position) {
		return this.convidados.get(position);
	}
	
	@Override
	public long getItemId(int position) {
		return this.convidados.get(position).getId();
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		Convidado convidado = this.convidados.get(position);
		
		LayoutInflater li =  (LayoutInflater)this.mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		
		View tempView = li.inflate(R.layout.item_convidado_convite, null);
		
		ImageView foto = (ImageView) tempView.findViewById(R.id.foto);
		
		Bitmap bitmap = null;
		
		// Se for o meu usuário, buscar dados nas preferências
		SharedPreferences preferences = mContext.getSharedPreferences("com.bora_bandeco", Context.MODE_PRIVATE);
        int meuIdContato = preferences.getInt("_id", 0);
        
        if (meuIdContato == convidado.getId()) {
        	String minhaFotoCodificada = preferences.getString("foto", "");
        	
        	if (!minhaFotoCodificada.equalsIgnoreCase("")) {
        		byte[] decodedString = Base64.decode(minhaFotoCodificada, Base64.DEFAULT);
        		bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        	}
        } else {
        	bitmap = convidado.getBitmap();
        }
		
		if (bitmap != null) {
			foto.setImageBitmap(bitmap);
		}

		
		TextView nome = (TextView) tempView.findViewById(R.id.nome);
		nome.setText(convidado.getNome());
		
		Button resposta = (Button) tempView.findViewById(R.id.resposta);
		
		switch (convidado.getResposta()) {
			case IREI:
				resposta.setText(this.mContext.getResources().getString(R.string.confirmado));
				resposta.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_checkmark, 0, 0, 0);
				break;
			
			case NAO_IREI:
				resposta.setText(this.mContext.getResources().getString(R.string.nao_ira));
				resposta.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_close, 0, 0, 0);
				break;
			
			default:
				resposta.setText(this.mContext.getResources().getString(R.string.sem_resposta));
				resposta.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_question, 0, 0, 0);
				break;
		}
		
		return tempView;
	}
}
